#!usr/bin/env python  
# -*- coding:utf-8 _*-
""" 
@author:robot
@file: splice02_sole_type.py 
@version:
@time: 2022/02/15 
"""
from TapClientCaseData.ColumnGenerateData.dynamic.splice05_postgres.splice01_category_type import *

__all__ = [
    'SOLE_POSTGRES_TYPE_SMALLINT', 'SOLE_POSTGRES_TYPE_INTEGER', 'SOLE_POSTGRES_TYPE_BIGINT', 'SOLE_POSTGRES_TYPE_INT2',
    'SOLE_POSTGRES_TYPE_INT4', 'SOLE_POSTGRES_TYPE_INT8', 'SOLE_POSTGRES_TYPE_DECIMAL', 'SOLE_POSTGRES_TYPE_NUMERIC',
    'SOLE_POSTGRES_TYPE_REAL', 'SOLE_POSTGRES_TYPE_DOUBLE_PRECISION', 'SOLE_POSTGRES_TYPE_SMALLSERIAL',
    'SOLE_POSTGRES_TYPE_SERIAL', 'SOLE_POSTGRES_TYPE_BIGSERIAL',

    'SOLE_POSTGRES_TYPE_MONEY',

    'SOLE_POSTGRES_TYPE_CHARACTER_VARYING', 'SOLE_POSTGRES_TYPE_VARCHAR', 'SOLE_POSTGRES_TYPE_CHARACTER',
    'SOLE_POSTGRES_TYPE_CHAR', 'SOLE_POSTGRES_TYPE_TEXT',

    'SOLE_POSTGRES_TYPE_BYTEA',

    'SOLE_POSTGRES_TIMESTAMP', 'SOLE_POSTGRES_TIMESTAMP_WITH_TIME_ZONE', 'SOLE_POSTGRES_DATE', 'SOLE_POSTGRES_TIME',
    'SOLE_POSTGRES_TIME_WITH_TIME_ZONE', 'SOLE_POSTGRES_INTERVAL',

    'SOLE_POSTGRES_BOOLEAN',

    # 'SOLE_POSTGRES_ENUMERATED' 暂不支持

    # 'SOLE_POSTGRES_POINTS', 'SOLE_POSTGRES_LINES', 'SOLE_POSTGRES_LINE_SEGMENTS','SOLE_POSTGRES_BOXES', 暂不支持
    # 'SOLE_POSTGRES_PATH', 'SOLE_POSTGRES_POLYGONS', 'SOLE_POSTGRES_CIRCLES',  暂不支持

    'SOLE_POSTGRES_CIDR', 'SOLE_POSTGRES_INET', 'SOLE_POSTGRES_MACADDR',
    # 'SOLE_POSTGRES_MACADDR8',

    'SOLE_POSTGRES_BIT', 'SOLE_POSTGRES_BIT_VARYING',

    'SOLE_POSTGRES_UUID',

    'SOLE_POSTGRES_XML',

    'SOLE_POSTGRES_JSON', 'SOLE_POSTGRES_JSONB',

    'SOLE_POSTGRES_ARRAY_ONE', 'SOLE_POSTGRES_ARRAY_TWO',

    # 'SOLE_POSTGRES_COMPOSITE', 暂不支持

    'SOLE_POSTGRES_INT4RANGE', 'SOLE_POSTGRES_INT8RANGE', 'SOLE_POSTGRES_NUMRANGE',
    'SOLE_POSTGRES_TSRANGE', 'SOLE_POSTGRES_TSTZRANGE', 'SOLE_POSTGRES_DATERANGE',

    # 'SOLE_POSTGRES_POSINT', 暂不支持

    # 'SOLE_POSTGRES_OID', 'SOLE_POSTGRES_REGPROC', 'SOLE_POSTGRES_REGPROCEDURE', 暂不支持
    # 'SOLE_POSTGRES_REGOPER', 'SOLE_POSTGRES_REGOPERATOR', 'SOLE_POSTGRES_REGCLASS', 暂不支持
    # 'SOLE_POSTGRES_REGTYPE', 'SOLE_POSTGRES_REGROLE', 'SOLE_POSTGRES_REGNAMESPACE', 暂不支持
    # 'SOLE_POSTGRES_REGCONFIG', 'SOLE_POSTGRES_REGDICTIONARY', 暂不支持

    # 'SOLE_POSTGRES_LSN'  暂不支持
]

print(f'POSTGRES TYPE COUNT IS: {len(__all__)}')
# 使用 ALL_TYPE 进行列表生成式
SOLE_POSTGRES_TYPE_LIST = [[PK, ONE_TYPE] for ONE_TYPE in POSTGRES_ALL_TYPE[1:]]

# SOLE NUMERIC
SOLE_POSTGRES_TYPE_SMALLINT = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[0])
SOLE_POSTGRES_TYPE_INTEGER = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[1])
SOLE_POSTGRES_TYPE_BIGINT = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[2])
SOLE_POSTGRES_TYPE_INT2 = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[3])
SOLE_POSTGRES_TYPE_INT4 = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[4])
SOLE_POSTGRES_TYPE_INT8 = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[5])
SOLE_POSTGRES_TYPE_DECIMAL = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[6])
SOLE_POSTGRES_TYPE_NUMERIC = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[7])
SOLE_POSTGRES_TYPE_REAL = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[8])
SOLE_POSTGRES_TYPE_DOUBLE_PRECISION = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[9])
SOLE_POSTGRES_TYPE_SMALLSERIAL = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[10])
SOLE_POSTGRES_TYPE_SERIAL = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[11])
SOLE_POSTGRES_TYPE_BIGSERIAL = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[12])

# SOLE MONETARY
SOLE_POSTGRES_TYPE_MONEY = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[13])

# SOLE CHARACTER
SOLE_POSTGRES_TYPE_CHARACTER_VARYING = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[14])
SOLE_POSTGRES_TYPE_VARCHAR = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[15])
SOLE_POSTGRES_TYPE_CHARACTER = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[16])
SOLE_POSTGRES_TYPE_CHAR = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[17])
SOLE_POSTGRES_TYPE_TEXT = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[18])

# SOLE BINARY_DATE
SOLE_POSTGRES_TYPE_BYTEA = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[19])

# SOLE DATE_TIME
SOLE_POSTGRES_TIMESTAMP = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[20])
SOLE_POSTGRES_TIMESTAMP_WITH_TIME_ZONE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[21])
SOLE_POSTGRES_DATE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[22])
SOLE_POSTGRES_TIME = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[23])
SOLE_POSTGRES_TIME_WITH_TIME_ZONE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[24])
SOLE_POSTGRES_INTERVAL = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[25])

# SOLE BOOLEAN
SOLE_POSTGRES_BOOLEAN = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[26])

# SOLE ENUMERATED
# SOLE_POSTGRES_ENUMERATED = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[27])
#
# # SOLE GEOMETRIC
# SOLE_POSTGRES_POINTS = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[28])
# SOLE_POSTGRES_LINES = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[29])
# SOLE_POSTGRES_LINE_SEGMENTS = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[30])
# SOLE_POSTGRES_BOXES = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[31])
# SOLE_POSTGRES_PATH = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[32])
# SOLE_POSTGRES_POLYGONS = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[33])
# SOLE_POSTGRES_CIRCLES = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[34])

# SOLE NETWORK_ADDRESS
SOLE_POSTGRES_CIDR = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[27])
SOLE_POSTGRES_INET = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[28])
SOLE_POSTGRES_MACADDR = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[29])
# SOLE_POSTGRES_MACADDR8 = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[30])

# SOLE BIT
SOLE_POSTGRES_BIT = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[30])
SOLE_POSTGRES_BIT_VARYING = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[31])

# SOLE TEXT

# SOLE UUID
SOLE_POSTGRES_UUID = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[32])

# SOLE XML
SOLE_POSTGRES_XML = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[33])

# SOLE JSON
SOLE_POSTGRES_JSON = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[34])
SOLE_POSTGRES_JSONB = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[35])

# SOLE ARRAYS
SOLE_POSTGRES_ARRAY_ONE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[36])
SOLE_POSTGRES_ARRAY_TWO = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[37])

# SOLE COMPOSITE
# SOLE_POSTGRES_COMPOSITE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[47])

# SOLE RANGE
SOLE_POSTGRES_INT4RANGE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[38])
SOLE_POSTGRES_INT8RANGE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[39])
SOLE_POSTGRES_NUMRANGE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[40])
SOLE_POSTGRES_TSRANGE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[41])
SOLE_POSTGRES_TSTZRANGE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[42])
SOLE_POSTGRES_DATERANGE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[43])

# # SOLE DOMAIN
# SOLE_POSTGRES_POSINT = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[54])
#
# # SOLE OBJECT_IDENTIFIER
# SOLE_POSTGRES_OID = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[55])
# SOLE_POSTGRES_REGPROC = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[56])
# SOLE_POSTGRES_REGPROCEDURE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[57])
# SOLE_POSTGRES_REGOPER = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[58])
# SOLE_POSTGRES_REGOPERATOR = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[59])
# SOLE_POSTGRES_REGCLASS = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[60])
# SOLE_POSTGRES_REGTYPE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[61])
# SOLE_POSTGRES_REGROLE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[62])
# SOLE_POSTGRES_REGNAMESPACE = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[63])
# SOLE_POSTGRES_REGCONFIG = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[64])
# SOLE_POSTGRES_REGDICTIONARY = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[65])
#
# # SOLE PG_LSN
# SOLE_POSTGRES_LSN = generate_columns_data(SOLE_POSTGRES_TYPE_LIST[66])
